Technote 1113
Customizing Desktop Printer Utility
ñ⁄éü
ÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÉÜÅ[ÉeÉBÉäÉeÉBÇÃÉJÉXÉ^É}ÉCÉY
• 'CsDs'ÉäÉ\Å[ÉXDžǬǢǃ
• ÉqÉìÉgÉäÉ\Å[ÉXDžǬǢǃ
ÉJÉXÉ^ÉÄDTPÇÃÉTÉìÉvÉã
óvñÒ |
ç°ÇÃLaserWriter 8ÇÃÉvÉäÉìÉ^ÉÇÉfÉãÇ≈ÇÕÅAAppleTalkÉlÉbÉgÉèÅ[ÉNè„ÅiLocalTalkñîÇÕAppleTalkÅjÇÃÉfÉoÉCÉXÇÃíÜÇ≈ÅANBPéÌï Ç™ÅuLaserWriterÅvÇÃLJÇÃÇ™ÉZÉåÉNÉ^Ç…åªÇÌÇÍÇ‹Ç∑ÅBÉÜÅ[ÉUÇ™LaserWriterÉvÉäÉìÉ^ÇëIÇ‘ÇΔÅALaserWriter
8ÇÕFinderÇ…Apple eventÇëóÇËÅAÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^Çê∂ê¨ÇµÇ‹Ç∑ÅBëΩÇ≠ÇÃÉÜÅ[ÉUÇ…éÊǡǃÅAåªç›ÇÃÉvÉäÉìÉ^ÉÇÉfÉãÇÃédólÇÕè\ï™Ç»Ç‡ÇÃÇΔåæÇ¶Ç‹Ç∑ÅBǵǩǵÅALJǡÇΔè_ìÓÇ»ÉfÉXÉNÉgÉbÉvÉvÉäÉìÉeÉBÉìÉOÉÇÉfÉãÇóvãÅÇ∑ÇÈê∫LJdžǡÇΩÇΩÇflÅAÉAÉbÉvÉãÉRÉìÉsÉÖÅ[É^ÇÕêVǵǢã@î\ÇîıǶÇΩLaserWriter
8.5.1ÇÉäÉäÅ[ÉXÇ∑ÇÈDZÇΔÇ…Ç»ÇËNjǵÇΩÅBDZÇÍÇ…ä÷òAǵǃÅAÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÇÃólÅXÇ»ã@î\ÇégǢDZǻÇ∑ÇΩÇflÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÅiÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÉÜÅ[ÉeÉBÉäÉeÉBÅjLJÉäÉäÅ[ÉXÇ≥ÇÍNjǵÇΩÅBç°Ç‹Ç≈ÇÃAppleTalkÇÃPAPÉvÉçÉgÉRÉãÇ…â¡Ç¶ÇƒÅAUnixÇÃlprÉvÉçÉgÉRÉãÇ…ëŒâûǵÇΩÉvÉäÉìÉ^LJégǶÇÈÇÊǧDžǻÇËNjǵÇΩÅBÇ‹ÇΩÅAÉçÅ[ÉJÉãÉvÉäÉìÉgÉLÉÖÅ[Çé¿åªÇ∑ÇÈHoldå^Ç‚é¿ë∂ǵǻǢVirtualå^ÇÃÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^LJçÏê¨Ç≈Ç´ÇÈÇÊǧDžǻÇËNjǵÇΩÅB |
è„ãLÇÃêVã@î\Ç…â¡Ç¶ÇƒÅAÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÉÜÅ[ÉeÉBÉäÉeÉBÇÕÉJÉXÉ^É}ÉCÉYÇ™â¬î\Ç≈Ç∑ÅBLaserWriter
8.5.1ÇΔÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÉÜÅ[ÉeÉBÉäÉeÉBÇÕã§Ç…ÉJÉXÉ^ÉÄDTPÅiÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÅjÇÉTÉ|Å[ÉgǵǃǢNjÇ∑ÅBÉJÉXÉ^ÉÄDTPÇ…àÛç¸ÇÇ∑ÇÈÇΔÅALaserWriter
8.5.1ÉhÉâÉCÉoÇÕPostScriptÉtÉ@ÉCÉãÇèoóÕǵǃÅAå„èàóùÇÃÇΩÇflÅAê∂ê¨ÇµÇΩPostScriptÉtÉ@ÉCÉãÇì¡íËÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ìnǵNjÇ∑ÅBãNìÆÇ≥ÇÍÇΩÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕÇ«ÇÒÇ»ÉAÉNÉVÉáÉìÇéÊǡǃLJç\ǢNjÇπÇÒÅBPostScriptÉtÉ@ÉCÉãÇëºÇÃå`éÆÇ…ïœä∑ǵÇΩÇËÅAÉÇÉfÉÄÇ‚ÉlÉbÉgÉèÅ[ÉNÇ≈ì]ëóǵÇΩÇËÅAâÊñ è„Ç…ï\é¶Ç∑ÇÈDZÇΔLJâ¬î\Ç≈Ç∑ÅBDZÇÃÉeÉbÉNÉmÅ[ÉgÇ≈ÇÕÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÉÜÅ[ÉeÉBÉäÉeÉBÇÃÉJÉXÉ^É}ÉCÉYDžǬǢǃâê‡ÇǵNjÇ∑ÅB
ÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÉÜÅ[ÉeÉBÉäÉeÉBÇÃÉJÉXÉ^É}ÉCÉY
ÉJÉXÉ^ÉÄDTPÇÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÉÜÅ[ÉeÉBÉäÉeÉBÇ…îFéØÇ≥ÇπÇÈÇ…ÇÕÅAÉÜÅ[ÉeÉBÉäÉeÉBÇÃÉäÉ\Å[ÉXÉtÉHÅ[ÉNÇ…ì¡íËÇÃÉäÉ\Å[ÉXÇâ¡Ç¶Ç»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅBÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÉÜÅ[ÉeÉBÉäÉeÉBÇÕDZÇÃçÏãΔÇä»íPÇ…Ç∑ÇÈÇΩÇflÇ…ólÅXÇ»ÉeÉìÉvÉåÅ[ÉgÇä‹ÇÒÇ≈ǢNjÇ∑ÅB
'CsDs' ÅiCustomDTPResourceÅjÉäÉ\Å[ÉX
ÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÉÜÅ[ÉeÉBÉäÉeÉBÇÉJÉXÉ^É}ÉCÉYÇ∑ÇÈÇ…ÇÕÅA'CsDs' ÅiCustomDTPResourceÅjÉäÉ\Å[ÉXÇí«â¡ÇµÇ‹Ç∑ÅBLaserWriterÇÕDZÇÃèÓïÒÇéQèΔǵǃÅAãNìÆÇ∑ÇÈÉAÉvÉäÉPÅ[ÉVÉáÉìÇì¡íËǵNjÇ∑ÅB
ÉäÉ\Å[ÉXÇÃíËã`ÇÕà»â∫Ç…é¶Ç∑'CustomAppDesc' ç\ë¢ëÃÇ≈Ç∑ÅB
#define kVariableLen 1
struct CustomAppDesc {
OSType appSignature;
Str255 docType;
Str255 helpText;
Str255 usage;
Str255 appFileName;
short numOfHintsFollow;
HintRsrcSpec hintRsrc[kVariableLen];
}
typedef struct CustomAppDesc CustomAppDesc;
|
• appSignature : ãNìÆÇ∑ÇÈÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÉNÉäÉGÅ[É^É^ÉCÉvÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇì¡íËÇ∑ÇÈç€Ç…ÅALaserWriterÉhÉâÉCÉoÇÕÇ∑Ç◊ǃÇÃÉ}ÉEÉìÉgÇ≥ÇÍǃǢÇÈÉ{ÉäÉÖÅ[ÉÄÇåüçıǵNjÇ∑ÅB
• docType : ÉJÉXÉ^ÉÄDTPÇÃéÌï Çé¶Ç∑ï∂éöóÒÅBDZÇÃï∂éöóÒÇÕêVãKçÏê¨éûÇ…ÉäÉXÉgÇ…ï\é¶Ç≥ÇÍÇ‹Ç∑ÅBê}1Ç≈ÇÕDZÇÃï∂éöóÒÇ™ëIëÇ≥ÇÍǃǢNjÇ∑ÅB
• helpText : ÉJÉXÉ^ÉÄDTPÇÃê‡ñæï∂ÅBDZÇÃï∂éöóÒÇÕêVãKçÏê¨É_ÉCÉAÉçÉOÇÃâ∫Ç…ï\é¶Ç≥ÇÍÇ‹Ç∑ÅBê}1Ç≈ÇÕÅuCustom
DTP Example Help TextÅvÇΔǻǡǃǢNjÇ∑ÅB
• usage : ÉJÉXÉ^ÉÄDTPÇóòópǵÇΩéûÇ…ï\é¶Ç≥ÇÍÇÈï∂éöóÒÅBê}2Ç≈ÇÕÅuCustom
DTP Example Usage stringÅvÇΔǻǡǃǢNjÇ∑ÅB
• appFileName : ãNìÆÇ∑ÇÈÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃñºèÃÅBÉAÉvÉäÉPÅ[ÉVÉáÉìÇì¡íËÇ∑ÇÈç€Ç…LaserWriterÉhÉâÉCÉoÇÕDZÇÃèÓïÒÇóòópǵNjÇ∑ÅBÇ‹ÇΩÅADZÇÃï∂éöóÒÇÕÉGÉâÅ[ÉÅÉbÉZÅ[ÉWÇï\é¶Ç∑ÇÈç€Ç…LJégÇÌÇÍÇ‹Ç∑ÅBÅió·ÅFSurfWriter
could not be launched due to insufficient memoryÅBÅj
• numOfHintsFollow : ë±Ç≠hintRsrcÇ…ä‹Ç‹ÇÍǃǢÇÈÉqÉìÉgêîÅBè⁄ǵÇ≠ÇÕÉqÉìÉgÉäÉ\Å[ÉXÇÃê‡ñæÇÇ≤óóâ∫Ç≥Ç¢ÅB
• hintRsrc : ÉhÉâÉCÉoÇ™ê∂ê¨Ç∑ÇÈPostScriptÇÃÉqÉìÉgÇÃîzóÒÅBè⁄ǵÇ≠ÇÕÉqÉìÉgÉäÉ\Å[ÉXÇÃê‡ñæÇÇ≤óóâ∫Ç≥Ç¢ÅB
ê}1

ê}2

ÉqÉìÉgÉäÉ\Å[ÉXÅiÉIÉvÉVÉáÉìÅjDžǬǢǃ
èoóÕÇ∑ÇÈPostScriptDžǬǢǃÅACustomDTPResource Ç≈ólÅXÇ»ÉqÉìÉgÇ™éwíËÇ≈Ç´Ç‹Ç∑ÅBCustomDTPResource ÇÃnumOfHintsFollow ÉtÉBÅ[ÉãÉhÇ≈ÇÕÉqÉìÉgÇÃëçêîÇéwíËǵNjÇ∑ÅBäeÉqÉìÉgÇ…ä÷Ç∑ÇÈèÓïÒÇÕà»â∫ÇÃç\ë¢ëÃÇ©ÇÁǻǡǃǮÇËÅAîzóÒÇΔǵǃCustomDTPResource Ç…ì¸ÇËÇ‹Ç∑ÅB
struct HintRsrcSpec {
OSType rsrcType;
short rsrcID;
};
typedef struct HintRsrcSpec HintRsrcSpec;
|
äeÉqÉìÉgÇÕì¡íËÇÃÉäÉ\Å[ÉXÇéQèΔǵNjÇ∑ÅBà»â∫Ç…åªç›ÉTÉ|Å[ÉgÇ≥ÇÍǃǢÇÈÉqÉìÉgÇè–âÓǵNjÇ∑ÅB
PostScriptÉåÉxÉã
PostScriptÉtÉ@ÉCÉãÇÃå„èàóùÇçsǧÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕì¡íËÇÃPostScriptÉåÉxÉãÇïKóvÇΔÇ∑ÇÈèÍçáǙdžÇËÇ‹Ç∑ÅB'pslv' ÉqÉìÉgÇ≈ÇÕèoóÕÇ…égÇÌÇÍÇÈPostScriptÉåÉxÉãÇéwíËÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
ÉäÉ\Å[ÉXÉ^ÉCÉvÅF'PSlv'
typedef struct {
OSType hintType; //Å@'pslv'ÉqÉìÉg
long hintId; //Å@1ÇéwíËǵNjÇ∑
long psLevel;
} PSlvResource;
#define kHintLanguageLevelTag 'pslv'
#define kHintLanguageLevelId 1
|
åªç›psLevel Ç≈éwíËÇ≈Ç´ÇÈílÇÕà»â∫ÇÃí ÇËÇ≈Ç∑ÅB
-3Å@Å@Å@Å@ÉåÉxÉã2ÇΔÉåÉxÉã3
-2Å@Å@Å@Å@ÉåÉxÉã1ÇΔÉåÉxÉã2
-1Å@Å@Å@Å@ÉåÉxÉãïsñæ
0Å@Å@Å@Å@ǪÇÃëºÇÃÉåÉxÉãÅ@Å@Å@Å@//Å@DZÇÃílÇÕégópǵǻǢÇ≈â∫Ç≥Ç¢
1Å@Å@Å@Å@ÉåÉxÉã1
2Å@Å@Å@Å@ÉåÉxÉã2
3Å@Å@Å@Å@ÉåÉxÉã3
|
íçÅF
-3 ÇÕPostScriptÉåÉxÉã2ãyÇ—ÉåÉxÉã3ÇèoóÕǵNjÇ∑ÇÃÇ≈ÅAÉåÉxÉã1ÇÃèoóÕëïíuÇ≈ÇÕégópÇ≈ǴǻǢDZÇΔǙdžÇËÇ‹Ç∑ÅB-2 ÇÕÉåÉxÉã1ÅAÉåÉxÉã2ÅAÉåÉxÉã3ÇÃÇ∑Ç◊ǃÇÃPostScriptëïíuÇ≈égópÇ≈Ç´ÇÈèoóÕÇçsǢNjÇ∑ÅB |
ÉoÉCÉiÉäÉfÅ[É^
DZÇÃÉqÉìÉgÇégǧÇΔÅAèoóÕÇ…ÉoÉCÉiÉäÉfÅ[É^Ç™ä‹Ç‹ÇÍÇÈDZÇΔÇãñâ¬ñîÇÕãëî€Ç≈Ç´Ç‹Ç∑ÅB
ÉäÉ\Å[ÉXÉ^ÉCÉvÅF'BNok'
typedef struct {
OSType hintType; //Å@'bnok'ÉqÉìÉg
long hintId; //Å@1ÇéwíËǵNjÇ∑
TriState binaryOK;
} BNokResource;
#define kHintADOIsBinaryOKTag 'bnok'
#define kHintADOIsBinaryOKId 1
|
binaryOK ÉtÉBÅ[ÉãÉhÇ≈ÇÕÉoÉCÉiÉäÉfÅ[É^Çãñâ¬Ç∑ÇÈǩǫǧǩÇà»â∫ÇÃílÇégǡǃéwíËǵNjÇ∑ÅB
0Å@Å@Å@Å@ãñâ¬ÇµÇ»Ç¢
1Å@Å@Å@Å@ãñâ¬Ç∑ÇÈ
2Å@Å@Å@Å@ïsñæÅ@Å@Å@Å@//Å@DZÇÃílÇÕégópǵǻǢÇ≈â∫Ç≥Ç¢
|
íçÅF
ïsñæÇÃílÇÕè´óàÇÃÇΩÇflÇ…íËã`ǵǃdžÇËÇ‹Ç∑ÅBDTPÇ≈ÇÕéwíËǵǻǢÇ≈â∫Ç≥Ç¢ÅB |
ÉWÉáÉuéÌï
DZÇÃÉqÉìÉgÇÕèoóÕÇ∑ÇÈPostScriptÇÃå`éÆÇéwíËǵNjÇ∑ÅB
ÉäÉ\Å[ÉXÉ^ÉCÉvÅF'JObt'
typedef struct {
OSType hintType; //Å@'jobt'ÉqÉìÉg
long hintId; //Å@1ÇéwíËǵNjÇ∑
char jobType;
} BNokResource;
#define kHintJobTypeTag 'jobt'
#define kHintJobTypeId 1
|
jobType Ç≈éwíËÇ≈Ç´ÇÈPostScriptÇÃèoóÕå`éÆÇÕ2ǬdžÇËÇ‹Ç∑ÅB
0Å@Å@Å@Å@psJobPostScript
1Å@Å@Å@Å@psJobEPSNoPreview
|
ÉtÉHÉìÉgÇÃèàóù
DZÇÃÉqÉìÉgÇ≈ÇÕèoóÕÉtÉ@ÉCÉãÇ…ÉtÉHÉìÉgèÓïÒÇä‹Çfiç€ÇÃÉhÉâÉCÉoÇÃìÆçÏÇ™éwíËÇ≈Ç´Ç‹Ç∑ÅBDZÇÃÉqÉìÉgÇÕ4ÉoÉCÉgÇÃÉtÉâÉOÇ…ë±Ç¢ÇƒÅAèIí[Ç…NULLÇâ¡Ç¶ÇΩï∂éöóÒÇÃîzóÒÇ©ÇÁǻǡǃǢNjÇ∑ÅB
ÉäÉ\Å[ÉXÉ^ÉCÉvÅF'FOnt'
typedef struct {
OSType hintType; //Å@'font'ÉqÉìÉg
long hintId; //Å@1ÇéwíËǵNjÇ∑
long tag;
unsigned char name [1];
} FOntResource;
#define kHintIncludeFontsTag 'font'
#define kHintIncludeFontsId 1
|
tag Ç≈éwíËÇ≈Ç´ÇÈílÇÕà»â∫ÇÃí ÇËÇ≈Ç∑ÅB
0Å@Å@Å@Å@kIncludeNoFontsOtherThan
1Å@Å@Å@Å@kIncludeAllFontsBut
|
kIncludeNoFontsOtherThan ÇÃèÍçáÅAÉqÉìÉgÇ≈éwíËÇ≥ÇÍǃǢÇÈÉtÉHÉìÉgÇÃèÓïÒÇÃǛǙèoóÕÉtÉ@ÉCÉãÇ…ä‹Ç‹ÇÍÇ‹Ç∑ÅBÉtÉHÉìÉgÇ™àÍǬLJéwíËÇ≥ÇÍǃǢǻǢèÍçáÅAÉtÉHÉìÉgèÓïÒÇÕàÍêÿèoóÕÉtÉ@ÉCÉãÇ…ä‹Ç‹ÇÍÇ‹ÇπÇÒÅBkIncludeAllFontsBut ÇÃèÍçáÅAÉqÉìÉgÇ≈éwíËÇ≥ÇÍǃǢǻǢÉtÉHÉìÉgÇÃèÓïÒÇÃǛǙèoóÕÉtÉ@ÉCÉãÇ…ä‹Ç‹ÇÍÇ‹Ç∑ÅBÇ∑Ç◊ǃÇÃÉtÉHÉìÉgÇÃèÓïÒÇèoóÕÉtÉ@ÉCÉãÇ…ä‹ÇfiÇ…ÇÕÅAkIncludeAllFontsBut ÇéwíËǵǃÅAÉtÉHÉìÉgÇàÍǬLJéwíËǵNjÇπÇÒÅB
ÉJÉXÉ^ÉÄDTPÇÃÉTÉìÉvÉã
à»â∫ÇÃÉJÉXÉ^ÉÄDTPÇÕ'CsDs' ÇΔ'FOnt' ÉäÉ\Å[ÉXÇóòópǵǃÅAèoóÕÉtÉ@ÉCÉãÇ©ÇÁCourierÇΔHelveticaÇÃÉtÉHÉìÉgèÓïÒÇèúÇ´Ç‹Ç∑ÅBDZÇÃÉTÉìÉvÉãÇÕDTPÉÜÅ[ÉeÉBÉäÉeÉBǙǫÇÍÇŸÇ«ä»íPÇ…ÉJÉXÉ^É}ÉCÉYÇ≈Ç´ÇÈÇ©Çé¶Ç∑LJÇÃÇ≈Ç∑ÅB
Ç‹Ç∏ÅAÉqÉìÉgÉäÉ\Å[ÉXÇçÏê¨ÇµÇ‹Ç∑ÅBDZÇÃÉTÉìÉvÉãÇ≈ÇÕÉtÉHÉìÉgèÓïÒÇÃàµÇ¢ÇéwíËÇ∑ÇÈÇΩÇflÇÃ'FOnt' ÉäÉ\Å[ÉXÇí«â¡ÇµÇ‹ÇµÇΩÅB

éüÇÕ'CsDs' ÉäÉ\Å[ÉXÇï“èWǵǃÅAêÊÇŸÇ«çÏê¨ÇµÇΩÉqÉìÉgÇΔì¡íËÇÃDTPÇåãÇ—ïtÇØÇ‹Ç∑ÅB

à»è„Ç≈ÉJÉXÉ^ÉÄDTPÇ™äÆê¨ÇµÇ‹ÇµÇΩÅBDZÇÃÉJÉXÉ^ÉÄDTPÇÕCourierÇΔHelveticaà»äOÇÃÉtÉHÉìÉgèÓïÒÇä‹ÇfiPostScriptÉtÉ@ÉCÉãÇçÏê¨ÇµÇ‹Ç∑ÅB
ÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÉÜÅ[ÉeÉBÉäÉeÉBÇÃêßå¿
Mac OS 8.0ãyÇ—LaserWriter 8.5.1ÇÃäJî≠Ç™ïΩçsǵǃçsÇÌÇÍÇΩÇΩÇflÅALaserWriter 8.5.1Ç…ä‹Ç‹ÇÍǃǢÇÈDTPÉÜÅ[ÉeÉBÉäÉeÉB1.0ÇÕMac
OS 8.0Ç≈óòópÇ≈Ç´Ç‹ÇπÇÒÅBéüä˙ÉäÉäÅ[ÉXMac OS 8.1Ç≈ÇÕñ‚ëËÇ»Ç≠égópÇ≈Ç´Ç‹Ç∑ÅB
ÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÉÜÅ[ÉeÉBÉäÉeÉBÇÃÉâÉCÉZÉìÉVÉìÉO
ÉAÉvÉäÉPÅ[ÉVÉáÉìÇΔàÍèèÇ…ÉJÉXÉ^ÉÄDTPÉÜÅ[ÉeÉBÉäÉeÉBÇèoâ◊Ç∑ÇÈèÍçáÇÕÅADTPÉÜÅ[ÉeÉBÉäÉeÉBÇÉâÉCÉZÉìÉXÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBè⁄ç◊DžǬǢǃÇÕÉAÉbÉvÉãÉRÉìÉsÉÖÅ[É^ÇÃÉ\ÉtÉgÉEÉFÉAÉâÉCÉZÉìÉVÉìÉOÉOÉãÅ[ÉvÅisw.license@apple.comñîÇÕ512-919-2645ÅjÇ…ñ‚Ç¢çáÇÌÇπǃâ∫Ç≥Ç¢ÅB
óvñÒ
DZÇÃÉeÉbÉNÉmÅ[ÉgÇ≈ÇÕÉfÉXÉNÉgÉbÉvÉvÉäÉìÉ^ÉÜÅ[ÉeÉBÉäÉeÉBÇÃÉJÉXÉ^É}ÉCÉYï˚ñ@Çè⁄ǵÇ≠è–âÓǵNjǵÇΩÅBÇ∫Ç–àÍìxÇ®ééǵDžǻǡǃâ∫Ç≥Ç¢ÅB
éQçlï∂å£
çXêVì˙: 1997 îN 11 åé 14 ì˙
|